package com.yfp.client.mapper;

import cn.hutool.core.date.DateTime;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yfp.client.domain.OrderCombo;
import com.yfp.client.domain.dto.OrderListDTO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author admin
 * @description 针对表【order_combo】的数据库操作Mapper
 * @createDate 2024-05-24 11:28:52
 * @Entity com.yfp.domain.com.yfp.client.OrderCombo
 */
public interface OrderComboMapper extends BaseMapper<OrderCombo> {

    List<String> getOrderIdList(OrderCombo orderCombo);

    List<OrderCombo> getLimitOrder(OrderListDTO orderListDTO);

    /**
     * 根据用户id查询订单
     *
     * @param userId
     * @return
     */
    List<OrderCombo> listByUserIdAndStatus(OrderListDTO userId);

    void updateCupboardState(@Param("orderId") String orderId, @Param("state") int state);

    /**
     * 统计完成单数
     *
     * @param clientId
     * @return
     */
    Integer countOrderByClientId(String clientId);

    /**
     * 获取今日未完成订单
     *
     * @return
     */
    List<OrderCombo> getUnfinishedOrder(@Param("status") String status, @Param("clientId") String clientId);

    /**
     * 统计前三条数据 的设备
     *
     * @param clientId
     * @return MachineId
     */
    String countMachineId(String clientId);

    /**
     * 获取最新的一个订单
     * 实体订单
     *
     * @return
     */
    OrderCombo listLastByClientId(@Param("clientId") String clientId, @Param("statusList") List<String> statusList);

    /**
     * 统计某个时间点后的订单数量
     *
     * @param clientId
     * @param createTime
     * @return
     */
    Integer countOrderByClientIdAndCreateTime(@Param("clientId") String clientId, @Param("createTime") DateTime createTime);

    /**
     *
     * @param clientId
     * @return
     */
    String getPositionId(String clientId);

    Integer isFirstOrder(String clientId);

    /**
     * 根据用户id获取最后一单订单号
     * @return
     */
    String getByUserId(String clientId);

}




